from celery.schedules import crontab

from celery import Celery



# 这个文件时固定写法
# 消息中间件 使用redis库1
broker = 'redis://127.0.0.1:6379/1'
# 结果存储  使用redis库2
backend = 'redis://127.0.0.1:6379/2'
# 实例化得到redis的app对象  由于任务分发到不同的py文件  需要加入include  这里只是到文件
app = Celery(r'可以随便起名', broker=broker, backend=backend,include=['celery_task.test'])
             # include=['celery_task.user_task', 'celery_task.crawl_task', 'celery_task.order_task','celery_task.test.send_email'])


# 配置时区
app.conf.timezone = 'Asia/Shanghai'
# 是否使用utc时间
app.conf.enable_utc = False

# 定时任务五秒一次爬百度方法
# app.conf.beat_schedule = {
#     'low-task': {
#         'task': 'celery_task.crawl_task.crawl_baidu',
#         'schedule': timedelta(seconds=5),
#         'args': ()  # 参数  没有可以不传
#     },
#     'low-task2': {
#             'task': 'celery_task.order_task.send_order',
#             'schedule': timedelta(seconds=5),
#             'args': ()  # 参数  没有可以不传
#         },
#     'low-task3': {
#                 'task': 'celery_task.user_task.send_email',
#                 'schedule': timedelta(seconds=5),
#                 'args': ()  # 参数  没有可以不传
#             }
#     }
# 要用beat去启动  需要新开cmd窗口   需要切换到目录下再执行
# 先启动redis              celery -A celery_task worker -l info -P eventlet
# 再启动                    celery -A celery_task beat -l info

app.conf.beat_schedule = {
    'low-task3': {
        'task': 'celery_task.test.send_email',
        'schedule': crontab(hour=19, minute=50),
        'args': ("202@qq.com",),  # 如果没有参数，可以省略
    },
}
